﻿using BLL;
using DTO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace HDT.GUI
{
    public partial class FrmThamSo : Form
    {
        private PhanQuyenDTO phanQuyen;
        ThamSoDTO thamSo;

        public FrmThamSo()
        {
            InitializeComponent();
            phanQuyen = new PhanQuyenDTO();
        }


        public FrmThamSo(TKDangNhapDTO taiKhoan)
            : this()
        {
            try
            {
                NhanVienDTO nhanVien = new NhanVienBLL().GetByID(taiKhoan.MaNhanVien);
                List<PhanQuyenDTO> ds = new PhanQuyenBLL().Select("MaLoaiNV = '" + nhanVien.MaLoaiNhanVien + "'");
                phanQuyen = ds[0];
            }
            catch { }
        }

        private void PhanQuyen()
        {
            btnTLUng.Visible = phanQuyen.ThayDoiQD;
            btnGTHD.Visible = phanQuyen.ThayDoiQD;
            btnSLNhap.Visible = phanQuyen.ThayDoiQD;
            btnSLTon.Visible = phanQuyen.ThayDoiQD;
        }

        private void FrmThamSo_Load(object sender, EventArgs e)
        {
            PhanQuyen();
            thamSo = new ThamSoBLL().GetThamSo();
            LoadInfo();
        }

        private void LoadInfo()
        {
            try
            {
                txtTLUng.Text = thamSo.TLUng.ToString("#,##0.000 %");
                txtGTHD.Text = thamSo.GTHD.ToString("#,##0");
                txtSLTon.Text = thamSo.SLTon.ToString();
                txtSLNhap.Text = thamSo.SLNhap.ToString();
            }
            catch
            {
                txtTLUng.Clear();
                txtGTHD.Clear();
                txtSLTon.Clear();
                txtSLNhap.Clear();
            }
        }

        public void SetTLUng(int data)
        {
            try
            {
                thamSo.TLUng = (double)data / 100;
                new ThamSoBLL().Update(thamSo);
                txtTLUng.Text = thamSo.TLUng.ToString("#,##0.000 %");
                MessageBox.Show("Cập nhật tham số thành công", "THÔNG BÁO", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message, "LỖI", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        public void SetGTHD(int data)
        {
            try
            {
                thamSo.GTHD = data;
                new ThamSoBLL().Update(thamSo);
                txtGTHD.Text = thamSo.GTHD.ToString("#,##0");
                MessageBox.Show("Cập nhật tham số thành công", "THÔNG BÁO", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "LỖI", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        public void SetSLNhap(int data)
        {
            try
            {
                thamSo.SLNhap = data;
                new ThamSoBLL().Update(thamSo);
                txtSLNhap.Text = thamSo.SLNhap.ToString();
                MessageBox.Show("Cập nhật tham số thành công", "THÔNG BÁO", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "LỖI", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        public void SetSLTon(int data)
        {
            try
            {
                thamSo.SLTon = data;
                new ThamSoBLL().Update(thamSo);
                txtSLTon.Text = thamSo.SLNhap.ToString();
                MessageBox.Show("Cập nhật tham số thành công", "THÔNG BÁO", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "LỖI", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnTLUng_Click(object sender, EventArgs e)
        {
            FrmEditThamSo f = new FrmEditThamSo(1);
            f.SetThamSo = new FrmEditThamSo.MyDelegate(SetTLUng);
            f.ShowDialog();
        }

        private void btnGTHD_Click(object sender, EventArgs e)
        {
            FrmEditThamSo f = new FrmEditThamSo(2);
            f.SetThamSo = new FrmEditThamSo.MyDelegate(SetGTHD);
            f.ShowDialog();
        }

        private void btnSLNhap_Click(object sender, EventArgs e)
        {
            FrmEditThamSo f = new FrmEditThamSo(3);
            f.SetThamSo = new FrmEditThamSo.MyDelegate(SetSLNhap);
            f.ShowDialog();
        }

        private void btnSLTon_Click(object sender, EventArgs e)
        {
            FrmEditThamSo f = new FrmEditThamSo(4);
            f.SetThamSo = new FrmEditThamSo.MyDelegate(SetSLTon);
            f.ShowDialog();
        }
    }
}
